package com.jeesite.modules.ch.entity;

import javax.validation.constraints.Size;
import java.util.Date;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;

/**
 * ch_my_taskEntity
 * @author 李寒冰
 * @version 2025-10-15
 */
@Table(name="ch_my_task", alias="a", label="ch_my_task信息", columns={
		@Column(name="id", attrName="id", label="id", isPK=true),
		@Column(name="project_name", attrName="projectName", label="项目名称/APP名称", queryType=QueryType.LIKE),
		@Column(name="title", attrName="title", label="标题", queryType=QueryType.LIKE),
		@Column(name="user_id", attrName="userId", label="商家ID"),
		@Column(name="explain_str", attrName="explainStr", label="描述"),
		@Column(name="submit_times", attrName="submitTimes", label="提交时常"),
		@Column(name="examine_times", attrName="examineTimes", label="审核时常"),
		@Column(name="dev_type", attrName="devType", label="设备类型 0 不限 1安卓 2 IOS", isUpdateForce=true),
		@Column(name="zuodan_num_type", attrName="zuodanNumType", label="做单方式", isUpdateForce=true),
		@Column(name="price", attrName="price", label="用户单价", isUpdateForce=true),
		@Column(name="old_price", attrName="oldPrice", label="悬赏单价", isUpdateForce=true),
		@Column(name="buzhou_list", attrName="buzhouList", label="做单步骤"),
		@Column(name="create_time", attrName="createTime", label="创建时间/报名时间", isUpdateForce=true),
		@Column(name="my_task_status", attrName="myTaskStatus", label="我的任务状态", comment="我的任务状态：0进行中 1待审核 2已通过  3未通过"),
		@Column(name="status", attrName="status", label="0正常 1删除", isUpdate=false),
		@Column(name="fail_explain", attrName="failExplain", label="未通过说明"),
		@Column(name="do_time", attrName="doTime", label="操作时间", isUpdateForce=true),
		@Column(name="task_id", attrName="taskId", label="商家任务id"),
		@Column(name="update_time", attrName="updateTime", label="更新时间", isUpdateForce=true),
		@Column(name="task_user_id", attrName="taskUserId", label="悬赏人ID"),
		@Column(name="task_type", attrName="taskType", label="任务类型"),
		@Column(name="task_code", attrName="taskCode", label="任务编号"),
		@Column(name="deadline", attrName="deadline", label="截止时间", isUpdateForce=true),
		@Column(name="is_read", attrName="isRead", label="是否已读  0否 1是"),
		@Column(name="my_task_status_before", attrName="myTaskStatusBefore", label="结单前的状态"),
		@Column(name="user_data_id", attrName="userDataId", label="小转帮用户数据id"),
		@Column(name="xzb_callback", attrName="xzbCallback", label="小转帮回传数据"),
		@Column(name="xzb_task_id", attrName="xzbTaskId", label="小转帮任务ID"),
		@Column(name="user_headimgurl", attrName="userHeadimgurl", label="商家头像"),
		@Column(name="type", attrName="type", label="任务类型", comment="任务类型（1用户任务 2小转帮 3平台任务）"),
		@Column(name="xzb_task_status", attrName="xzbTaskStatus", label="小转帮状态"),
		@Column(name="channel_id", attrName="channelId", label="渠道ID"),
		@Column(name="channel_user_id", attrName="channelUserId", label="渠道用户ID"),
		@Column(name="callback_status", attrName="callbackStatus", label="同步状态"),
	}, orderBy="a.id DESC"
)
public class ChMyTask extends DataEntity<ChMyTask> {
	
	private static final long serialVersionUID = 1L;
	private String projectName;		// 项目名称/APP名称
	private String title;		// 标题
	private String userId;		// 商家ID
	private String explainStr;		// 描述
	private String submitTimes;		// 提交时常
	private String examineTimes;		// 审核时常
	private Integer devType;		// 设备类型 0 不限 1安卓 2 IOS
	private Integer zuodanNumType;		// 做单方式
	private Double price;		// 用户单价
	private Double oldPrice;		// 悬赏单价
	private String buzhouList;		// 做单步骤
	private Date createTime;		// 创建时间/报名时间
	private String myTaskStatus;		// 我的任务状态：0进行中 1待审核 2已通过  3未通过
	private String failExplain;		// 未通过说明
	private Date doTime;		// 操作时间
	private String taskId;		// 商家任务id
	private Date updateTime;		// 更新时间
	private String taskUserId;		// 悬赏人ID
	private String taskType;		// 任务类型
	private String taskCode;		// 任务编号
	private Date deadline;		// 截止时间
	private String isRead;		// 是否已读  0否 1是
	private String myTaskStatusBefore;		// 结单前的状态
	private String userDataId;		// 小转帮用户数据id
	private String xzbCallback;		// 小转帮回传数据
	private String xzbTaskId;		// 小转帮任务ID
	private String userHeadimgurl;		// 商家头像
	private String type;		// 任务类型（1用户任务 2小转帮 3平台任务）
	private String xzbTaskStatus;		// 小转帮状态
	private String channelId;		// 渠道ID
	private String channelUserId;		// 渠道用户ID
	private String callbackStatus;		// 同步状态

	public ChMyTask() {
		this(null);
	}
	
	public ChMyTask(String id){
		super(id);
	}
	
	@Size(min=0, max=255, message="项目名称/APP名称长度不能超过 255 个字符")
	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}
	
	@Size(min=0, max=255, message="标题长度不能超过 255 个字符")
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}
	
	@Size(min=0, max=50, message="商家ID长度不能超过 50 个字符")
	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}
	
	@Size(min=0, max=255, message="描述长度不能超过 255 个字符")
	public String getExplainStr() {
		return explainStr;
	}

	public void setExplainStr(String explainStr) {
		this.explainStr = explainStr;
	}
	
	@Size(min=0, max=10, message="提交时常长度不能超过 10 个字符")
	public String getSubmitTimes() {
		return submitTimes;
	}

	public void setSubmitTimes(String submitTimes) {
		this.submitTimes = submitTimes;
	}
	
	@Size(min=0, max=10, message="审核时常长度不能超过 10 个字符")
	public String getExamineTimes() {
		return examineTimes;
	}

	public void setExamineTimes(String examineTimes) {
		this.examineTimes = examineTimes;
	}
	
	public Integer getDevType() {
		return devType;
	}

	public void setDevType(Integer devType) {
		this.devType = devType;
	}
	
	public Integer getZuodanNumType() {
		return zuodanNumType;
	}

	public void setZuodanNumType(Integer zuodanNumType) {
		this.zuodanNumType = zuodanNumType;
	}
	
	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}
	
	public Double getOldPrice() {
		return oldPrice;
	}

	public void setOldPrice(Double oldPrice) {
		this.oldPrice = oldPrice;
	}
	
	public String getBuzhouList() {
		return buzhouList;
	}

	public void setBuzhouList(String buzhouList) {
		this.buzhouList = buzhouList;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	
	@Size(min=0, max=10, message="我的任务状态长度不能超过 10 个字符")
	public String getMyTaskStatus() {
		return myTaskStatus;
	}

	public void setMyTaskStatus(String myTaskStatus) {
		this.myTaskStatus = myTaskStatus;
	}
	
	@Size(min=0, max=255, message="未通过说明长度不能超过 255 个字符")
	public String getFailExplain() {
		return failExplain;
	}

	public void setFailExplain(String failExplain) {
		this.failExplain = failExplain;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getDoTime() {
		return doTime;
	}

	public void setDoTime(Date doTime) {
		this.doTime = doTime;
	}
	
	@Size(min=0, max=50, message="商家任务id长度不能超过 50 个字符")
	public String getTaskId() {
		return taskId;
	}

	public void setTaskId(String taskId) {
		this.taskId = taskId;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	
	@Size(min=0, max=50, message="悬赏人ID长度不能超过 50 个字符")
	public String getTaskUserId() {
		return taskUserId;
	}

	public void setTaskUserId(String taskUserId) {
		this.taskUserId = taskUserId;
	}
	
	@Size(min=0, max=255, message="任务类型长度不能超过 255 个字符")
	public String getTaskType() {
		return taskType;
	}

	public void setTaskType(String taskType) {
		this.taskType = taskType;
	}
	
	@Size(min=0, max=255, message="任务编号长度不能超过 255 个字符")
	public String getTaskCode() {
		return taskCode;
	}

	public void setTaskCode(String taskCode) {
		this.taskCode = taskCode;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getDeadline() {
		return deadline;
	}

	public void setDeadline(Date deadline) {
		this.deadline = deadline;
	}
	
	@Size(min=0, max=2, message="是否已读  0否 1是长度不能超过 2 个字符")
	public String getIsRead() {
		return isRead;
	}

	public void setIsRead(String isRead) {
		this.isRead = isRead;
	}
	
	@Size(min=0, max=10, message="结单前的状态长度不能超过 10 个字符")
	public String getMyTaskStatusBefore() {
		return myTaskStatusBefore;
	}

	public void setMyTaskStatusBefore(String myTaskStatusBefore) {
		this.myTaskStatusBefore = myTaskStatusBefore;
	}
	
	@Size(min=0, max=50, message="小转帮用户数据id长度不能超过 50 个字符")
	public String getUserDataId() {
		return userDataId;
	}

	public void setUserDataId(String userDataId) {
		this.userDataId = userDataId;
	}
	
	public String getXzbCallback() {
		return xzbCallback;
	}

	public void setXzbCallback(String xzbCallback) {
		this.xzbCallback = xzbCallback;
	}
	
	@Size(min=0, max=20, message="小转帮任务ID长度不能超过 20 个字符")
	public String getXzbTaskId() {
		return xzbTaskId;
	}

	public void setXzbTaskId(String xzbTaskId) {
		this.xzbTaskId = xzbTaskId;
	}
	
	@Size(min=0, max=500, message="商家头像长度不能超过 500 个字符")
	public String getUserHeadimgurl() {
		return userHeadimgurl;
	}

	public void setUserHeadimgurl(String userHeadimgurl) {
		this.userHeadimgurl = userHeadimgurl;
	}
	
	@Size(min=0, max=2, message="任务类型长度不能超过 2 个字符")
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@Size(min=0, max=2, message="小转帮状态长度不能超过 2 个字符")
	public String getXzbTaskStatus() {
		return xzbTaskStatus;
	}

	public void setXzbTaskStatus(String xzbTaskStatus) {
		this.xzbTaskStatus = xzbTaskStatus;
	}
	
	@Size(min=0, max=225, message="渠道ID长度不能超过 225 个字符")
	public String getChannelId() {
		return channelId;
	}

	public void setChannelId(String channelId) {
		this.channelId = channelId;
	}
	
	@Size(min=0, max=225, message="渠道用户ID长度不能超过 225 个字符")
	public String getChannelUserId() {
		return channelUserId;
	}

	public void setChannelUserId(String channelUserId) {
		this.channelUserId = channelUserId;
	}
	
	@Size(min=0, max=255, message="同步状态长度不能超过 255 个字符")
	public String getCallbackStatus() {
		return callbackStatus;
	}

	public void setCallbackStatus(String callbackStatus) {
		this.callbackStatus = callbackStatus;
	}
	
}